package cn.appsys.dao.deve.appinfo;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.appsys.pojo.AppInfo;

/**
 * 软件信息实体类dao层
 * @author Administrator
 *
 */
public interface DevAppInfoMapper {
	
	/**
	 * 分页根据条件查询app信息列表
	 * @param softwareName 软件名
	 * @param status APP状态
	 * @param flatformId 所属平台id
	 * @param categoryLevel1 一级分类
	 * @param categoryLevel2 二级分类
	 * @param categoryLevel3 三级分类
	 * @param from 起始位置偏移量
	 * @param pageSize 页大小
	 * @return
	 */
	List<AppInfo> queryAppInfoPage(
			@Param("softwareName") String softwareName,
			@Param("status") Integer status,
			@Param("flatformId") Integer flatformId,
			@Param("categoryLevel1") Integer categoryLevel1,
			@Param("categoryLevel2") Integer categoryLevel2,
			@Param("categoryLevel3") Integer categoryLevel3,
			@Param("from")Integer from,
			@Param("pageSize")Integer pageSize);
	
	//查询总记录数
	int queryTotalCount(
			@Param("softwareName") String softwareName,
			@Param("status") Integer status,
			@Param("flatformId") Integer flatformId,
			@Param("categoryLevel1") Integer categoryLevel1,
			@Param("categoryLevel2") Integer categoryLevel2,
			@Param("categoryLevel3") Integer categoryLevel3);
	
	//验证APKName是否唯一
	AppInfo queryAppInfoByAPKName(@Param("APKName")String APKName);
	
	//实现新增操作
	int addAppInfo(AppInfo info);
	
	//通过id查询appinfo
	AppInfo queryAppInfoById(@Param("id")Integer id,@Param("APKName") String APKName);
	
	//通过id删除图片
	int upFileById(@Param("id")Integer id);
	
	//修改app基础信息(上下架也是用这个方法)
	int upAppInfo(AppInfo appInfo);

	//删除app基础信息及文件
	int delAppInfoById(@Param("id") Integer id);
}
